www.gusucode.com > VC++ 三维图形生成和察看工具 > VC++ 三维图形生成和察看工具/code/mesh/Lib3D/Material.cpp
//Download by http://www.NewXing.com //******************************************** // Material.cpp //******************************************** // alliez@usc.edu // Created : 24/02/98 // Modified : 24/02/98 //******************************************** #include "stdafx.h" #include "Material.h" //******************************************** // Constructor //******************************************** CMaterial::CMaterial() { // Default SetAmbient(0.0f,0.33f,0.5f,1.0f); SetDiffuse(0.5f,0.5f,0.5f,1.0f); SetSpecular(1.0f,1.0f,1.0f,1.0f); SetShininess(84.0f); SetEmission(0.0f,0.0f,0.0f,1.0f); } ////////////////////////////////////////////// // DATA SETTINGS ////////////////////////////////////////////// //******************************************** // SetAmbient //******************************************** void CMaterial::SetAmbient(float r, float g, float b, float a) { m_pAmbient[0] = r; m_pAmbient[1] = g; m_pAmbient[2] = b; m_pAmbient[3] = a; } //******************************************** // SetDiffuse //******************************************** void CMaterial::SetDiffuse(float r, float g, float b, float a) { m_pDiffuse[0] = r; m_pDiffuse[1] = g; m_pDiffuse[2] = b; m_pDiffuse[3] = a; } //******************************************** // SetSpecular //******************************************** void CMaterial::SetSpecular(float r, float g, float b, float a) { m_pSpecular[0] = r; m_pSpecular[1] = g; m_pSpecular[2] = b; m_pSpecular[3] = a; } //******************************************** // SetEmission //******************************************** void CMaterial::SetEmission(float r, float g, float b, float a) { m_pEmission[0] = r; m_pEmission[1] = g; m_pEmission[2] = b; m_pEmission[3] = a; } //******************************************** // SetShininess //******************************************** void CMaterial::SetShininess(float value) { m_pShininess[0] = value; } //******************************************** // Copy //******************************************** void CMaterial::Copy(CMaterial *pMaterial) { SetSpecular(pMaterial->GetSpecular()[0],pMaterial->GetSpecular()[1],pMaterial->GetSpecular()[2],pMaterial->GetSpecular()[3]); SetAmbient(pMaterial->GetAmbient()[0],pMaterial->GetAmbient()[1],pMaterial->GetAmbient()[2],pMaterial->GetAmbient()[3]); SetDiffuse(pMaterial->GetDiffuse()[0],pMaterial->GetDiffuse()[1],pMaterial->GetDiffuse()[2],pMaterial->GetDiffuse()[3]); SetEmission(pMaterial->GetEmission()[0],pMaterial->GetEmission()[1],pMaterial->GetEmission()[2],pMaterial->GetEmission()[3]); SetShininess(pMaterial->GetShininess()[0]); } // ** EOF **